package com.gzq.factorymethod.exam30;

/**
 * 定义一个创建对象的接口，让其子类确定对类的实例化。
 * 工厂方法，将类的实例化延迟到了其子类。
 * 
 * 简单工厂， 多工厂，单例-工厂。延迟加载。
 * 单一职责，里氏替换，迪米特法则，依赖倒置，接口隔离，开闭原则
 * 优点：
 * 良好的封装性，隔离客户端与工厂和产品的具体实现。
 * 良好的扩展性，对具体的工厂实现和产品有很好的扩展性。
 * 总结：工厂方法，是一个解耦的设计模式。符合迪米特法则，依赖倒置，里氏替换，开闭原则。
 * 
 * @author Administrator
 *
 */
public class TianDaoMain {
	
	public static void main(String[] args) {
		IBaGuaLu bgl = new IBaGuaLuImpl();
		bgl.create(YellowImpl.class).race();
		bgl.create(WhiteImpl.class).race();
	}

}



